/**
 * 游戏 战斗 场景
 */
class GameFireScene
    extends GameBaseScene {

    /**
     * 单例实例
     */
    private static instance: GameFireScene = null;

    /**
     * 编译顺序 标识
     */
    public static referenceFlag: string = GamePauseScene.referenceFlag;

    /**
     * 相关属性
     */
    private physicsSpace: PhysicsSpace = null; // 物理空间
    public static selfName: string = "GameFireScene"; // 场景 名称
    public static tickFlag: boolean = false; // onTick 函数，开关 标识

    /**
     * 构造函数
     */
    public constructor() {
        super();
    }

    /**
     * 获取 单例实例
     */
    public static get getInstance(): GameFireScene {

        if (GameFireScene.instance == null) {
            GameFireScene.instance = new GameFireScene();
        }
        return GameFireScene.instance;
    }

    /**
     * 初始化 函数
     */
    public init(): void {

        this.resetSceneSize(); // 1.0 设置 宽高

        this.physicsSpace = new PhysicsSpace(); // 2.0 初始化 物理空间
        this.physicsSpace.init();
        this.addChild(this.physicsSpace);

        this.setInitCompleteFlag(true); // 3.0 更新 初始化 完成 标识
    }

    /**
     * 释放 场景 资源
     */
    public destroyScene(): void {

        this.removeChild(this.physicsSpace); // 1.0 移除 + 释放 物理空间 对象
        this.physicsSpace = null;

        this.setInitCompleteFlag(false); // 2.0 更新 初始化 完成 标识
    }

    /**
     * 重置 场景
     */
    public resetScene(): void {

        this.physicsSpace.resetSpace();
    }


    /**
     * 心跳 函数
     */
    public onTick(): void {

        this.physicsSpace.onTick(); // 启动 物理空间 心跳函数
    }

}